import sensors from 'sa-sdk-miniprogram'
import Taro from '@tarojs/taro'
import { SENSORS_UTM } from './config'
import { scBaseData } from '_api/sensorsdata'
import { PAGE_TITLE } from '@/config/share'
import { IS_PROD } from '@/config'

const project_name = IS_PROD ? 'xthkxx' : 'xthkxxtest'

export class Sensorsdata {
  constructor() {
    this.store = null
    sensors.init({
      name: 'sensors',
      server_url: `https://sensors.xthktech.cn/sa?project=${project_name}`,
      // 全埋点控制开关
      autoTrack: {},
      // 自定义渠道追踪参数，如source_channel: ["custom_param"]
      source_channel: [],
      // 是否允许控制台打印查看埋点数据(建议开启查看)
      show_log: true,
      // 是否允许修改 onShareAppMessage 里 return 的 path，用来增加(登录 ID，分享层级，当前的 path)，在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
      allow_amend_share_path: true,
      framework: {
        taro: Taro
      },
      autoTrack: {
        appLaunch: false, // 默认为 true，false 则关闭 $MPLaunch 事件采集
        appShow: false, // 默认为 true，false 则关闭 $MPShow 事件采集
        appHide: false, // 默认为 true，false 则关闭 $MPHide 事件采集
        pageShow: false, // 默认为 true，false 则关闭 $MPViewScreen 事件采集
        pageShare: false, // 默认为 true，false 则关闭 $MPShare 事件采集
        mpClick: false, // 默认为 false，true 则开启 $MPClick 事件采集 
        mpFavorite: false // 默认为 true，false 则关闭 $MPAddFavorites 事件采集
      }
    })
  }

  setStore (store) {
    this.store = store
  }
  async track (type, params = {}, other = {}) {
    /* 转发时触发页面时阻止 */
    if (Taro.getStorageSync('onShowReason') === 'share') return Taro.setStorageSync('onShowReason', '')
    const utm = Taro.getStorageSync(SENSORS_UTM) || {}
    const { data: userBaseData } = await scBaseData().catch(e => {
      return { data: {} }
    })
    const defaultParams = {
      ...utm,
      ...userBaseData,
      ...params,
      /* 设置页面位置 */
      page_position: other.setPagePosition ? PAGE_TITLE[other.setPagePosition] : undefined,
    }
    const { uc_student_id, uc_user_id } = defaultParams
    console.log(defaultParams, 'defaultParams')
    sensors.track(type, { ...defaultParams, ...params, xthk_student_id: uc_student_id, xthk_user_id: uc_user_id })
  }
}
